package com.FundamentalDemos.IfAndSwitch;

import java.util.Scanner;

public class 分支结构 {
    //学习使用if和switch
    public static void main(String[] args) {
        double score = -1;
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的成绩:");
        score = sc.nextDouble();
        String result;
        char flag = ' ';
        if (score >= 0 && score < 60) {
            flag = 'D';
        } else if (score >= 60 && score < 80) {
            flag = 'C';
        } else if (score >= 80 && score < 90) {
            flag = 'B';
        } else if (score >= 90 && score <= 100) {
            flag = 'A';
        } else {
            //什么也不做
        }

        switch (flag) {
            //switch底层不是一项一项比较的,而是以某种机制快速找到匹配项,效率高于if else从前到后一项一项匹配

            //switch的判断条件需要为 '字符，字节，短整型，整型，字符串(>=JDK7)或枚举(>=JDK5)',不支持double,float,long ; 因为long太大匹配效率不高,而浮点数运算是不精确的

            //case后面的值不允许重复,且只能是常量,不能是变量

            //没有break;会从匹配项开始一直往下执行,default在前在后都一样,如果没有匹配项,那么会从default项开始往下执行


            case 'D':
                result = "你的等级是D";
                break;
            case 'C':
                result = "你的等级是C";
                break;
            case 'B':
                result = "你的等级是B";
                break;
            case 'A':
                result = "你的等级是A";
                break;
            default:
                result = "录入的成绩有误!";
        }

        System.out.println(result);
    }
}
